原帖 | Jack | 2024-11-21 14:20 | 👍1 | 阅读约1
RTOS优先级规划
在RTOS中,我们一般会将这几类任务优先级依次放到比较高的优先级里:
1.靠近中断的线程:这些线程需要迅速响应中断(初始化中断,改变中断的处理内容(如重定向buffer等)),并将相关的后续任务移交给其他任务(如其他消费者线程)。
2.实时性要求比较高的:比如,UI控制,特定数据采集,和外部应答协议等。
3.任务间同步和协调:有些任务负责协调其他任务,或者控制着设备的整体状态,有时需要尽快切换状态,因此优先级也比较高。
4.故障处理和安全监控的任务:有些错误需要及时处理(清除标志等),如果没有及时响应这些错误,则可能会升级为Hardfault等错误。
除了这些经验外,我们在最终还可以通过Systemview来观察任务之间的调用关系,去尽可能减少一些随机调度,来彻底耦合任务间的调度链(用 GPIO 插桩观测调度的方法见 在调试 RTOS的PendSV、任务切换、Systick 这种“内部中断事件”时)
相关笔记